package com.rzjm.exercise.common.utils;

import cn.hutool.core.util.StrUtil;

import java.util.regex.Pattern;

/**
 * 字符串相关方法
 *
 */
public class StringUtil {

	public static void main(String[] args) {
		System.out.println(replaceBlankSpace("x  y u"));
	}
	/**
	 * 将以逗号分隔的字符串转换成字符串数组
	 * @param valStr
	 * @return String[]
	 */
	public static String[] StrList(String valStr){
		int i = 0;
		String TempStr = valStr;
		String[] returnStr = new String[valStr.length() + 1 - TempStr.replace(",", "").length()];
		valStr = valStr + ",";
		while (valStr.indexOf(',') > 0)
		{
			returnStr[i] = valStr.substring(0, valStr.indexOf(','));
			valStr = valStr.substring(valStr.indexOf(',')+1 , valStr.length());

			i++;
		}
		return returnStr;
	}
	public static String replaceBlankSpace(String str){
		if(StrUtil.isNotEmpty(str) && StrUtil.isNotEmpty(str.trim())) {
			return str.replaceAll("\\s*", "");
		}
		return str;
	}

	/**
	 * 将以逗号分隔的字符串转换成字符串数组
	 * @param valStr
	 * @return String[]
	 */
	public static String[] StrT0List(String valStr,String code){
		String[] array = new String[0];
		if(valStr != null &&!valStr.equals("")){
			if(valStr.contains(code)){
				array = valStr.split(code);
			}else{
				array = new String[1];
				array[0] = valStr;
			}
		}
		return array;
	}

	/**
	 * 不够位数的在前面补0，保留num的长度位数字
	 * @param code
	 * @return
	 */
	public static String LeftBuCode(String code, int num) {
		String result = "";
		// 保留num的位数
		// 0 代表前面补充0
		// num 代表长度为4
		// d 代表参数为正数型
		result = String.format("%0" + num + "d", Integer.parseInt(code));
		return result;
	}


	/**
	 * 判断是否当前商品 使用了 skutype
	 * @param skuTypeId
	 * @param sku_type_ids
	 * @return
	 */
	public static boolean isHasThisSkuType(int skuTypeId, String sku_type_ids){
		boolean bl = false;
		if(sku_type_ids!=null && !sku_type_ids.equals("")){
			String[] ids = new String[0];
			if(sku_type_ids.contains(",")){
				ids = sku_type_ids.split(",");
			} else {
				ids = new String[1];
				ids[0] = sku_type_ids;
			}
			for(String id : ids){
				if(skuTypeId == Integer.parseInt(id)){
					return  true;
				}
			}
		}else{
			return  false;
		}
		return bl;
	}



	/**获取字符串编码
	 * @param str
	 * @return
	 */
	public static String getEncoding(String str) {
		String encode = "GB2312";
		try {
			if (str.equals(new String(str.getBytes(encode), encode))) {
				String s = encode;
				return s;
			}
		} catch (Exception exception) {
		}
		encode = "ISO-8859-1";
		try {
			if (str.equals(new String(str.getBytes(encode), encode))) {
				String s1 = encode;
				return s1;
			}
		} catch (Exception exception1) {
		}
		encode = "UTF-8";
		try {
			if (str.equals(new String(str.getBytes(encode), encode))) {
				String s2 = encode;
				return s2;
			}
		} catch (Exception exception2) {
		}
		encode = "GBK";
		try {
			if (str.equals(new String(str.getBytes(encode), encode))) {
				String s3 = encode;
				return s3;
			}
		} catch (Exception exception3) {
		}
		return "";
	}

	//判断浮点数（double和float）
	public static boolean isDouble(String str) {
		if (null == str || "".equals(str)) {
			return false;
		}
		Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$");
		return pattern.matcher(str).matches();
	}

	public static String getSplitStr(String str){
		if(!str.equals("")){
			str = str.substring(0,str.length() - 1);
		}
		return str;
	}
}
